Deep API Programmer: Learning to Program with APIs

نویسندگان

  • Surya Bhupatiraju
  • Rishabh Singh
  • Abdel-rahman Mohamed
  • Pushmeet Kohli
چکیده

We present DAPIP, a Programming-By-Example system that learns to program with APIs to perform data transformation tasks. We design a domainspecific language (DSL) that allows for arbitrary concatenations of API outputs and constant strings. The DSL consists of three family of APIs: regular expression-based APIs, lookup APIs, and transformation APIs. We then present a novel neural synthesis algorithm to search for programs in the DSL that are consistent with a given set of examples. The search algorithm uses recently introduced neural architectures to encode input-output examples and to model the program search in the DSL. We show that synthesis algorithm outperforms baseline methods for synthesizing programs on both synthetic and real-world benchmarks.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Design annotations to improve API discoverability

User studies have revealed that programmers face several obstacles when learning application programming interfaces (APIs). A considerable part of such difficulties relate to discovery of API elements and the relationships among them. To address discoverability problems, we show how to complement APIs with design annotations, which document design decisions in a program-processable form for typ...

متن کامل

API Blender: A Uniform Interface to Social Platform APIs

With the growing success of the social Web, most Web developers have to interact with at least one social Web platform, which implies studying the related API specifications. These are often only informally described, may contain errors, lack harmonization, and generally speaking make the developer’s work difficult. Most attempts to solve this problem, proposing formal description languages for...

متن کامل

Component-based Operating System APIs: A Versioning and Distributed Resource Solution

Component software techniques have been developed to facilitate software reuse. State and functionality are encapsulated inside components with the goal of limiting program errors due to implicit interactions between components. Late binding of components allows implementations to be chosen at run-time, thereby increasing opportunities for reuse. Current component infrastructures also provide v...

متن کامل

A Comparison of Maps Application Programming Interfaces

The development of web applications that manipulate geo-referenced information is often supported by Application Programming Interfaces (APIs), allowing a fast development cycle for high quality applications. APIs can be used by programmers with different expertise levels and choosing an adequate API may have a dramatic impact on the productivity achieved by those programmers. Our goal is to co...

متن کامل

Using Syntactic and Semantic Similarity of Web Apis to Estimate Porting Effort

Service Oriented Architecture (SOA) has altered the way programmers develop applications. Instead of using standalone libraries, programmers today often incorporate curated web services, accessed via well-defined interfaces (APIs), as modules in their applications. Web APIs, however, evolve rapidly, making it critical for developers to be able to compare APIs for similarity and estimate the wor...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:
  • CoRR

دوره abs/1704.04327  شماره 

صفحات  -

تاریخ انتشار 2017